<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        /**
            Promise是ES6引入的异步编程的新解决方案，语法上Promise是一个构造函数,
            用来封装异步操作并可以获取其成功或失败的结果。
            1) Promise 构造函数: Promise(excutor) {}
            2) Promise.prototype.then 方法
            3) Promise.prototype.catch方法
        */
        //实例化Promise对象
        // resolve, reject 可以自定义名称，当然潜规则是使用resolve, reject
        const p = new Promise(function(resolve, reject) {
            setTimeout(() => {
                //成功的异步操作时
                let success = '操作成功';
                //成功调用resolve方法
                resolve(success);

                let err = '操作失败';
                //失败就调用reject方法
                reject(err);
            })
        });

        //不管成功失败，都会自动调用promise对象的then方法
        //成功就执行第一个回调函数，失败就执行第二个回调函数
        p.then(function(value){
            console.log(value);
        }, function(reson) {
            console.error(reson);
        })
    </script>
</body>
</html>